#pragma once

#include <memory>

#include "../Network/SOM.h"
#include "../Math/Vector2.h"

using namespace std;

class CSOMLearn
{
public:
	CSOMLearn() = delete;

	CSOMLearn(shared_ptr<SOM> pNN);

public:
	void Trainning(const Vector2 & X, 
		double learnRateBase, double learnRateTimeDivisor, double learnRateMin,
		double distanceBase, double distanceTimeDivisor, double distanceMin);

	void ClearRoundNumber();

	unsigned long GetRoundNumber();

protected:
	shared_ptr<SOM>  m_pNN;

	unsigned long    m_RoundNumber;
};